package com.jingdianjichi.subject.infra.basic.service;

import com.jingdianjichi.subject.infra.basic.entity.SearchResult;
import com.jingdianjichi.subject.infra.basic.entity.SubjectEsDoc;
import com.jingdianjichi.subject.infra.basic.entity.SubjectEsDocRequstion;

/**
 * 从ES查询题目
 */
public interface SearchFromEs {

    /**
     * 从ES查询题目
     * @param subjectEsDocRequstion 查询条件
     * @return 搜索结果（包含题目列表和总记录数）
     */
    SearchResult<SubjectEsDoc> search(SubjectEsDocRequstion subjectEsDocRequstion);

    /**
     * 插入ES文档
     * @param subjectEsDoc 题目文档
     * @return 是否成功
     */
    Boolean insertToEs(SubjectEsDoc subjectEsDoc);

     /**
      * 更新ES文档
      * @param subjectEsDoc 题目文档
      * @return 是否成功
      */
    Boolean updateToEs(SubjectEsDoc subjectEsDoc);

     /**
      * 删除ES文档
      * @param subjectEsDoc 题目文档
      * @return 是否成功
      */
     Boolean deleteToEs(SubjectEsDoc subjectEsDoc);

     /**
      * 创建索引
      * @param indexName 索引名称
      * @return 是否成功
      */
     Boolean createIndex(String indexName);
}
